package com.evil.account.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 菜单表
 *
 * @author liyang
 * @date 2022-08-08 00:00
 */
@Data
@TableName(value = "evil_permission")
public class Permission implements Serializable {

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 菜单/权限名称
     */
    @TableField(value = "`name`")
    private String name;

    /**
     * 权限标识code
     */
    @TableField(value = "code")
    private String code;

    /**
     * 平台类型：0企业 1平台
     */
    @TableField(value = "platform_type")
    private Integer platformType;

    /**
     * 菜单类型(1:目录, 2:菜单, 3:按钮)
     */
    @TableField(value = "item_type")
    private String itemType;

    /**
     * 图标数据
     */
    @TableField(value = "icon_data")
    private String iconData;

    /**
     * 上级菜单id
     */
    @TableField(value = "parent_id")
    private Long parentId;

    /**
     * 排序 越大越靠前
     */
    @TableField(value = "sort")
    private Integer sort;

    /**
     * 组件路径
     */
    @TableField(value = "module_url")
    private String moduleUrl;

    /**
     * 终端类型 1:pc 2:h5 3:App
     */
    @TableField(value = "terminal_type")
    private Integer terminalType;

    /**
     * 路由地址
     */
    @TableField(value = "routing_address")
    private String routingAddress;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 是否显示(0:隐藏, 1:显示)
     */
    @TableField(value = "is_visible")
    private Integer isVisible;

    /**
     * 菜单状态(0:禁用, 1:开启)
     */
    @TableField(value = "is_enable")
    private Integer isEnable;

    /**
     * 是否已删除(0:否, 1:是)
     */
    @TableField(value = "is_delete")
    private Integer isDelete;

    /**
     * 是否缓存(0:禁用缓存, 1:开启缓存)
     */
    @TableField(value = "is_cache")
    private Integer isCache;

    /**
     * 是否外链(0:禁用, 1:开启)
     */
    @TableField(value = "is_outside_chain")
    private Integer isOutsideChain;

    /**
     * 创建人id
     */
    @TableField(value = "creator_id")
    private Long creatorId;

    /**
     * 创建人名字
     */
    @TableField(value = "creator_name")
    private String creatorName;

    /**
     * 创建时间
     */
    @TableField(value = "created")
    private Date created;

    /**
     * 修改操作人
     */
    @TableField(value = "modifier_id")
    private Long modifierId;

    /**
     * 修改操作人名字
     */
    @TableField(value = "modifier_name")
    private String modifierName;

    /**
     * 更新时间
     */
    @TableField(value = "updated")
    private Date updated;

    private static final long serialVersionUID = 1L;

    public static final String COL_ID = "id";

    public static final String COL_NAME = "name";

    public static final String COL_CODE = "code";

    public static final String COL_PLATFORM_TYPE = "platform_type";

    public static final String COL_ITEM_TYPE = "item_type";

    public static final String COL_ICON_DATA = "icon_data";

    public static final String COL_PARENT_ID = "parent_id";

    public static final String COL_SORT = "sort";

    public static final String COL_MODULE_URL = "module_url";

    public static final String COL_TERMINAL_TYPE = "terminal_type";

    public static final String COL_ROUTING_ADDRESS = "routing_address";

    public static final String COL_REMARK = "remark";

    public static final String COL_IS_VISIBLE = "is_visible";

    public static final String COL_IS_ENABLE = "is_enable";

    public static final String COL_IS_DELETE = "is_delete";

    public static final String COL_IS_CACHE = "is_cache";

    public static final String COL_IS_OUTSIDE_CHAIN = "is_outside_chain";

    public static final String COL_CREATOR_ID = "creator_id";

    public static final String COL_CREATOR_NAME = "creator_name";

    public static final String COL_CREATED = "created";

    public static final String COL_MODIFIER_ID = "modifier_id";

    public static final String COL_MODIFIER_NAME = "modifier_name";

    public static final String COL_UPDATED = "updated";
}